في هذه الصفحة يمكنك الحصول على تحليل مفصل لكلمة أو عبارة باستخدام أفضل تقنيات الذكاء الاصطناعي المتوفرة اليوم:
Trim (англ. trim — подрезать, подравнять; в некоторых языках — strip) — строковая функция, которая удаляет начальные и конечные пробелы.
Например, в Python:
возвращает строку:
'Это тест'
Наиболее популярные варианты функции trim
удаляют пробелы только в начале и в конце строк. Обычно они называются ltrim
и rtrim
соответственно, или в случае языка Python, — lstrip
и rstrip
. В C# используется название TrimStart
и TrimEnd
, а в Common Lisp string-left-trim
и string-right-trim
. В Паскале и в Java нет встроенных вариантов, хотя в Delphi присутствуют функции TrimLeft
и TrimRight
.
Многие функции trim
имеют опциональный параметр для определения списка символов к удалению. Например, PHP и Python позволяют задавать такой опциональный параметр, в то время как Паскаль и Java этого не дают. В функции string-trim
языка Common Lisp требуется параметр (называемый character-bag). В C++ библиотека Boost определяет символы пробела в соответствии с локалью, а также предлагает варианты параметра предиката для выбора того, какие символы удалять.
В отдельных случаях trim
возвращает определённый результат, если после операции удаления не осталось символов. Например, в StringUtils из Apache Jakarta Project есть функция, называемая stripToNull
, которая возвращает null
взамен пустой строки.
Альтернативой удаления строки является нормализация пробелов, когда в дополнение к удалению символов пробела по краям строки также любые последовательности пробелов внутри строки заменяются одним пробелом. Нормализация пробелов выполняется Trim()
приложениях работы с таблицами (включая Excel, Calc, Gnumeric и Google Docs), и функцией normalize-space()
в XSLT и XPath.
В то время как большинство алгоритмов возвращают новую (усечённую строку), некоторые изменяют первоначальную строку in-place, преобразуя структуру данных. Примечательно, что библиотека Boost позволяет либо усечение «in-place», либо возвращать усечённую копию строки.
Символы, которые относят к пробелам, различаются в разных языках программирования и их реализациях. Например, в Си традиционно считается таковыми символы пробела, табуляции, перевода строки и возврата каретки, в то время как языки, поддерживающие юникод, обычно относят сюда все символы пробелов юникода. Некоторые реализации вместе с символами пробелом также относят сюда и управляющие символы ASCII (непечатаемые символы).
Метод trim
в Java считает пробелами и управляющие коды, тогда как метод isWhitespace()
распознаёт символы пробелов юникода.